//
//  NSData + Extension.swift
//  SFWeiBo
//
//  Created by 孙凡 on 16/4/15.
//  Copyright © 2016年 Edward. All rights reserved.
//

import Foundation

extension NSDate {

    //转换日期格式
    class func creatTimeTextWith(timeString: String?) -> NSDate?{

        guard let time = timeString else {

            return nil
        }

        //转换时间格式  "created_at": "Tue May 31 17:46:55 +0800 2011"

        let fm: NSDateFormatter = NSDateFormatter()
        fm.dateFormat = "EEE MMM dd HH:mm:ss z yyyy"
        fm.locale = NSLocale(localeIdentifier: "en")
        //转化成时间格式
        let date: NSDate = fm.dateFromString(time)!

        //date转换成字符串格式
//        fm.stringFromDate(date)

        return date
    }

    var dateDescription: String? {

    //处理时间并且返回
//    func descreData(date: NSDate?) -> String?{

        //取到日期


        //当前时间
        //            var currentTime = NSDate()

        //测试时间
        //        date = NSDate().dateByAddingTimeInterval(-60*60*24*30*12)
        //定义格式
        let fm = NSDateFormatter()
        fm.locale = NSLocale(localeIdentifier: "en")

        //取到日历对象
        let calendar = NSCalendar.currentCalendar()

        //判断是否是今年
        if isDataInThisYear(self) {

            if calendar.isDateInToday(self) {
                //今天
                //取得秒差
                let result = -self.timeIntervalSinceNow
                //判断是不是1分钟以内
                if result < 60 {
                    return "刚刚"
                } else if result < 3600{
                    //判断是不是1小时以内
                    return "\(Int(result/60))分钟前"
                } else {
                    //其他
                    return "\(Int(result/60/60))小时前"
                }

            } else if calendar.isDateInYesterday(self) {
                //昨天
                fm.dateFormat = "HH:mm"
                return "昨天:\(fm.stringFromDate(self))"

            } else {
                fm.dateFormat = "MM-dd HH:mm"
                return "\(fm.stringFromDate(self))"
            }


        } else {
            //不是今年
            fm.dateFormat = "yyyy-MM-dd"
            return fm.stringFromDate(self)
        }


    }

    func isDataInThisYear(date: NSDate) -> Bool{


        //当前时间
        let currentTime = NSDate()

        //格式
        let fm = NSDateFormatter()
        fm.dateFormat = "yyyy"

        return fm.stringFromDate(date) == fm.stringFromDate(currentTime)
        
    }

}
